yolov5

您所在的位置:网站首页 pytorch yolov5 云服务器 yolov5

yolov5

2023-08-09 22:33| 来源: 网络整理| 查看: 265

yolov5--模型中的超参数_机器学习

目录

​​超参数初始化​​

​​选择合适的Fitness​​

​​进化!!​​

超参数初始化

超参数进化是一种使用​​遗传算法​​​(GA)进行​​超参数​​优化的方法。

Yolov5有30多个超参数用于训练设置,它们的定义位于/data/hyps/hyp.scratch.yaml文件中。在进化之前选择合适的超参数初始值很重要。

lr0: 0.01 # 初始学习率 (SGD=1E-2, Adam=1E-3) lrf: 0.2 # 最终的 OneCycleLR 学习率 (lr0 * lrf)momentum: 0.937 # SGD 动量/Adam beta1weight_decay: 0.0005 # 优化器权重衰减 5e-4warmup_epochs: 3.0 # 预热回合数(分数正常)warmup_momentum: 0.8 # 预热初始动量 warmup_bias_lr: 0.1 # 预热初始偏差 lr box: 0.05 # box loss 增益 cls: 0.5 # cls loss 增益 cls_pw: 1.0 # cls BCELoss positive_weightobj: 1.0 # obj loss 增益(按像素缩放)obj_pw: 1.0 # obj BCELoss positive_weightiou_t: 0.20 # IoU 训练阈值anchor_t: 4.0 # 多个锚点阈值 # anchors: 3 # 每个输出层的锚点 (0 表示忽略)fl_gamma: 0.0 # 焦损失伽马(efficientDet默认伽马= 1.5)hsv_h: 0.015 # 图像 HSV-Hue 增强(分数)hsv_s: 0.7 # 图像 HSV-饱和度增强(分数) hsv_v: 0.4 # 图像 HSV 值增强(分数)degrees: 0.0 # 图像旋转(+/- 度)translate: 0.1 # 图像翻译(+/- 分数)scale: 0.5 # 图像比例(+/- 增益)shear: 0.0 # 图像剪切(+/- 度)perspective: 0.0 # 图像透视(+/-分数),范围0-0.001flipud: 0.0 # 图像上下翻转(概率)fliplr: 0.5 # 图像左右翻转(概率)mosaic: 1.0 # 图像马赛克(概率)mixup: 0.0 # 图像混合(概率) copy_paste: 0.0 # 段复制粘贴(概率) 选择合适的Fitness

Fitness 是我们寻找最大值的变量,在 YOLOv5 中,我们将默认适应度函数定义为度量的加权组合:[email protected] 贡献了 10% 的权重,[email protected]:0.95 贡献了剩余的 90%,没有 Precision P 和 Recall R。您可以根据需要调整这些设置或使用默认的适合度定义(推荐)。

def fitness(x): # Model fitness as a weighted combination of metrics w = [0.0, 0.0, 0.1, 0.9] # weights for [P, R, [email protected], [email protected]:0.95] return (x[:, :4] * w).sum(1)进化!!

进化是针对我们寻求改进的基本场景进行的。本示例中的基本场景是使用预训练的 YOLOv5 对 COCO128 进行 10 个时期的微调。基本场景训练命令是:

python train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache

为了进化特定于此场景的超参数,从我们在第 1. 节中定义的初始值开始,并最大化第 2. 节中定义的适应度,附加 --evolve:

# Single-GPUpython train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache --evolve

默认进化设置将运行基本场景 300 次,即 300 代。您可以通过 --evolve 参数修改回合数,即 python train.py --evolve 1000

主要的遗传算子是交叉和变异。在这项工作中,使用变异以 90% 的概率和 0.04 的方差,根据所有前几代的最佳父母的组合来创建新的后代。结果被记录到runs/evolve/exp/evolve.csv,最高适应度后代每代保存为runs/evolve/hyp_evolved.yaml:

# YOLOv5 Hyperparameter Evolution Results# Best generation: 287# Last generation: 300# metrics/precision, metrics/recall, metrics/mAP_0.5, metrics/mAP_0.5:0.95, val/box_loss, val/obj_loss, val/cls_loss# 0.54634, 0.55625, 0.58201, 0.33665, 0.056451, 0.042892, 0.013441lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3)lrf: 0.2 # final OneCycleLR learning rate (lr0 * lrf)momentum: 0.937 # SGD momentum/Adam beta1weight_decay: 0.0005 # optimizer weight decay 5e-4warmup_epochs: 3.0 # warmup epochs (fractions ok)warmup_momentum: 0.8 # warmup initial momentumwarmup_bias_lr: 0.1 # warmup initial bias lrbox: 0.05 # box loss gaincls: 0.5 # cls loss gaincls_pw: 1.0 # cls BCELoss positive_weightobj: 1.0 # obj loss gain (scale with pixels)obj_pw: 1.0 # obj BCELoss positive_weightiou_t: 0.20 # IoU training thresholdanchor_t: 4.0 # anchor-multiple threshold# anchors: 3 # anchors per output layer (0 to ignore)fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5)hsv_h: 0.015 # image HSV-Hue augmentation (fraction)hsv_s: 0.7 # image HSV-Saturation augmentation (fraction)hsv_v: 0.4 # image HSV-Value augmentation (fraction)degrees: 0.0 # image rotation (+/- deg)translate: 0.1 # image translation (+/- fraction)scale: 0.5 # image scale (+/- gain)shear: 0.0 # image shear (+/- deg)perspective: 0.0 # image perspective (+/- fraction), range 0-0.001flipud: 0.0 # image flip up-down (probability)fliplr: 0.5 # image flip left-right (probability)mosaic: 1.0 # image mosaic (probability)mixup: 0.0 # image mixup (probability)copy_paste: 0.0 # segment copy-paste (probability)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3